printf(MYNAME ": adjusting time by %ds\n", time_adj);
}
// Iterate through waypoints in both tracks simultaneously
- QUEUE_FOR_EACH(&gnss_track->waypoint_list, elem, tmp) {
+ queue* melem;
+ queue* mtmp;
+ QUEUE_FOR_EACH(&gnss_track->waypoint_list, melem, mtmp) {
// FIXME(NEW_Q): the excessive casting of the iterators is gross. Rethink.
- double pres_alt = interpolate_alt(pres_track, ((Waypoint*) elem)->GetCreationTime().toTime_t() + time_adj);
- wr_fix_record(((Waypoint*) elem), (int) pres_alt, (int) ((Waypoint*)elem)->altitude);
+ void* vwaypointp = static_cast<void*>(melem);
+ Waypoint* wpt = static_cast<Waypoint*>(vwaypointp);
+ double pres_alt = interpolate_alt(pres_track, wpt->GetCreationTime().toTime_t() + time_adj);
+ wr_fix_record(wpt, pres_alt, wpt->altitude);
}
} else {
if (pres_track) {
// Only the pressure altitude track was found so generate fix
// records from it alone.
- QUEUE_FOR_EACH(&pres_track->waypoint_list, elem, tmp) {
- wr_fix_record((Waypoint*) elem, (int)((Waypoint*) elem)->altitude, (int) unknown_alt);
+ queue* melem;
+ queue* mtmp;
+ QUEUE_FOR_EACH(&pres_track->waypoint_list, melem, mtmp) {
+ void* vwaypointp = static_cast<void*>(melem);
+ Waypoint* wpt = static_cast<Waypoint*>(vwaypointp);
+ wr_fix_record(wpt, wpt->altitude, unknown_alt);
}
} else if (gnss_track) {
// Only the GNSS altitude track was found so generate fix